package comprehensive;

import java.util.ArrayList;
import java.util.List;

public class Exercises6 {
    // 494、目标和
    int ret; // 返回的数据
    int k; // 把目标值设置为全局变量
    public int findTargetSumWays(int[] nums, int target) {
        k = target;
        dfs(nums,0,0);
        return ret;
    }

    public void dfs(int[] nums,int pos,int path) {
        // pos是操作到哪个下标了，也相当于操作的次数
        if (pos == nums.length) {
            if(k == path) {
                ret++;
            }
            return;
        }

        // 进行加法
        dfs(nums,pos + 1,path + nums[pos]);

        // 进行减法
        dfs(nums,pos + 1,path - nums[pos]);

        // 每次递归往回归的时候呢，相当于就是 回溯->恢复现场
    }
}
